// var log = console.log()
// function add(a, b) {
//   return a + b;
// };

// const nums = [5, 6];
// const sum = add(...nums);
// console.log(sum);


// function add(...rest) {
// 	// console.log(rest)
//   return rest.reduce((total,current) => total + current);
// };

// console.log(add(1, 2)); // 3
// console.log(add(1, 2, 3, 4, 5)); // 15

// function getFirst([first, ...rest] = [0, 1]) {
// 	// console.log(...rest)
//   return first;
// }

// getFirst();  // 0
// getFirst([10,20,30]);  // 10

// function getArr({ nums } = { nums: [1, 2, 3, 4] }){
//     return nums;
// }

// getArr(); // [1, 2, 3, 4]
// getArr({nums:[5,4,3,2,1]}); // [5,4,3,2,1]

// function doSomethingWithValue(value = "Hello World", callback1 = () => { console.log(value) }) {
//   callback1();
// }
// doSomethingWithValue(); //"Hello World"

// function addlis(name = 'admin', callback =  () =>{console.log(name)}){
// 	callback()
// }

// addlis()

// let {a,...data} = {a:78989897987,b:7989646,data:000}
// console.log(data)
// let b =  {
// 	rc: 0,
// 	des: "操作成功",
// 	data:{shidu: "74%",city: "霸州市",aqi: 289,pm25: 203,wendu: "-7",type: "阴",}
// }

// let {rc,...data} = b
// console.log(rc)
// console.log(data)

//==============
// function a(a , b ) {
// 	var a1 = a || 0;
// 	var a2 = b || 1
// 	console.log(a1+a2);
// 	return a1+a2;
// } 
// a()

// let q = {};

// console.log(Array.isArray([]))

// console.log(new String('12312') instanceof(String))
// let s = 		new Object({a:1,b:2})
// console.log(s)
// var trees = new Array("redwood", "bay", "cedar", "oak", "maple" ,'ok');
// delete trees[0]
// console.log(trees)
// console.log(2 in trees)


// var pm = {m:'name',a:'age',z:18};
// console.log('m' in pm)

// var mycar = {make: "Honda", model: "Accord", year: 1998};
// delete mycar.make;  //删除Honda
// "make" in mycar;  // 返回false

// function add (name,age,sex) {
// 	console.log(this)
// }
// new  add('admin')
// Object.freeze()
// let a1 = [1,2,6,8,9,3];
// let a2 = [3,6,9];
// let cont = a1.filter( tiem =>{a1.includes(tiem)})

// console.log(cont);
//   function add(name,age) {  //类   也叫构造函数
// 	  this.name = name;
// 	  this.age = age;
//   }
// //在原型链上家方法
// add.prototype.sex = function (sex)
// {
// 	console.log(this.name)
// 	console.log(this.age)
// 	console.log(this.jonb)
// 	this.sex = sex;
// }

// //继承

// function jonb (name,age,jonb) {
// 	add.call(this,name,age);
// 	this.jonb = jonb;
	
// 	console.log(add.call(this,name,age))
// }
// 		jonb.prototype = new add();// 继承
// 		jonb.prototype.constructor = jonb; //添加 jonb方法
		
		

// new jonb('李四',22,'javascript')

// var ad = new add();
// ad('王文武','20');
// ad.sex('nv')
// new add('王文武','20').sex('nv')

// ES6面向对象 class 关键字
class uer{ // 类
	constructor(name,age) { //构造器
	    this.name = name;
		this.age = age;
	}
	//下面 name 和age 是扩展方法
	name(){ //方法  
		console.log(this.name)
	}
	age(){
		console.log(this.age)
	}
}
//Vipuse (新的一个方法) extends(关键字) 继承 uer(已有的方法) 
class Vipuser extends uer{  //子类 
	constructor(name,age,vip) { //子类构造器
	    super(name,age);  //super 父类(用来继承uer 方法) 超类
		this.vip = vip;
		
	}
	//新添加的方法
	userleve(){
		console.log(this.vip)
	}
}

new uer('自夏','22').name()